'use strict';

const db = uniCloud.database();


// cloudfunctions/updateTaskProgress/index.js
exports.main = async (event, context) => {
  try {
    // 从 event 中解构参数
    const { taskId, progressStep, progressText, userId } = event;
    
    // 验证参数完整性
    if (!taskId || !progressStep || !progressText || !userId) {
      return {
        code: 400,
        msg: '参数不完整，需要 taskId、progressStep、progressText、userId'
      };
    }

    // 模拟数据库更新（实际项目中替换为真实数据库操作，如 uniCloud.database ）
    console.log(`[云函数] 开始更新任务进度：taskId=${taskId}, progressStep=${progressStep}, progressText=${progressText}, userId=${userId}`);
    
    // 这里仅为示例，实际需根据项目数据库类型（如 MongoDB、MySQL 等）编写更新逻辑
    // 假设任务数据存储在名为 task 的集合中
    const db = uniCloud.database();
    const taskCollection = db.collection('task');
    
    // 更新任务进度
    const updateResult = await taskCollection.doc(taskId).update({
      progressStep: progressStep,
      progressText: progressText,
      latestUpdateBy: userId,
      latestUpdateTime: db.serverDate() // 服务器时间
    });

    // 检查更新结果
    if (updateResult.affectedDocs > 0) {
      return {
        code: 200,
        msg: '进度更新成功',
        data: { progressStep, progressText }
      };
    } else {
      return {
        code: 500,
        msg: '任务不存在或无权限更新'
      };
    }
  } catch (error) {
    console.error('[云函数] 进度更新异常:', error);
    return {
      code: 500,
      msg: '服务器异常，更新失败',
      error: error.message
    };
  }
};